package com.z001.snack.admin.module.business.oa.notice.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.z001.snack.common.common.json.serializer.FileKeyVoSerializer;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 通知公告 详情
 *
 * @Author 1024创新实验室-主任: 卓大
 * @Date 2022-08-12 21:40:39
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright 1024创新实验室 （ https://1024lab.net ），2012-2022
 */
@Data
public class NoticeDetailVO {

    /**
     * id
     */
    private Long noticeId;

    /**
     * 标题
     */
    private String title;

    /**
     * 分类
     */
    private Long noticeTypeId;

    /**
     * 分类名称
     */
    private Long noticeTypeName;

    /**
     * 是否全部可见
     */
    @NotNull(message = "是否全部可见不能为空")
    private Boolean allVisibleFlag;

    /**
     * 是否定时发布
     */
    @NotNull(message = "是否定时发布不能为空")
    private Boolean scheduledPublishFlag;

    /**
     * 纯文本内容
     */
    private String contentText;

    /**
     * html内容
     */
    private String contentHtml;

    /**
     * 附件
     */
    @JsonSerialize(using = FileKeyVoSerializer.class)
    private String attachment;

    /**
     * 发布时间
     */
    @NotNull(message = "发布时间不能为空")
    private LocalDateTime publishTime;

    /**
     * 作者
     */
    @NotBlank(message = "作者不能为空")
    private String author;

    /**
     * 来源
     */
    @NotBlank(message = "标题不能为空")
    private String source;

    /**
     * 文号
     */
    private String documentNumber;

    /**
     * 页面浏览量
     */
    private Integer pageViewCount;

    /**
     * 用户浏览量
     */
    private Integer userViewCount;

    /**
     * 创建人名称
     */
    private Long createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

}
